Cocoapods仓库分为两类:公共仓库、私有仓库
公共仓库:项目中用pod管理的第三方库,我们也可以创建自己的pod仓库。
私有仓库:主要用于自己一些公共库封装管理;或者项目组件化后,各个组件独立项目,成为一个pod仓库
本文主要讨论Cocoapods私有仓库的创建:
私有索引库
创建私有索引仓库
这里用的是百度云 coding.net(其他推荐gitee)
注意Github 创建私有仓库需要付费
添加本地pod索引
1 | $ pod repo add ZWKSpecs https://e.coding.net/jindouyun_wk/ZWKSpecs.git |
查看本地索引库1
2
3
4
5
6
7
8
9
10
11$ pod repo
master
- Type: git (master)
- URL: https://github.com/CocoaPods/Specs.git
- Path: /Users/dianshi/.cocoapods/repos/master
ZWKSpecs
- Type: git (master)
- URL: https://e.coding.net/jindouyun_wk/ZWKSpecs.git
- Path: /Users/dianshi/.cocoapods/repos/ZWKSpecs
创建组件库
首先创建组件仓库 ZWKExtensions
快速创建模版库
1 | pod lib create ZWKExtensions |
cd 进入项目,初始化创建podspec文件
1 | pod spec create ZWKCategory |
1 | What is your name? |
会自动创建项目并执行 pod install
并打开workspace
class 文档里面就是放pod的内容
添加组件内容
把组件库项目代码文件引入,注意选择 Copy item & Add to targets
安装与测试本地库
可以在项目中引入库并进行相应测试
注意组件库中的方法需要是 public 才能在整个工程调用1
2
3
4
5
6
7
8public var borderColor: UIColor {
get {
UIColor(cgColor: layer.borderColor!)
}
set {
layer.borderColor = newValue.cgColor
}
}
import 库名称1
2
3
4
5
6
7import ZWKExtensions
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
view.borderColor = .red
}
修改spec配置文件
在.podspec 文件中进行配置
1 | Pod::Spec.new do |s| |
上传组件库代码
先进行本地验证
pod lib lint
如果是私有库 建议 pod lib lint --private
将代码提交到组件仓库
1 | git add . |
打标签
1 | git tag '0.1.0' # 注意需要与 .podspec 中配置的版本号一致 |
提交组件库到索引库
远程验证
1 | // 远程验证会验证 s.source 中的tag,如果此时没有打上相应的标签则会报错 |
提交podspec
1 | // pod repo push 私有索引库名称 spec名称.podspec |
完成后更新pod索引pod repo update ZWKSpecs
使用私有库
添加 Podfile 文件
1 | pod init |
配置Podfile
顶部填写 pod source1
2
3
4source 'https://e.coding.net/jindouyun_wk/ZWKExtensions.git'
source 'https://github.com/CocoaPods/Specs.git'
pod 'LXFBase'
安装及使用
1 | pod install |
完成后1
import ZWKExtensions
参考文章
https://juejin.im/post/5ac5d5abf265da2396129e63
https://swiftcafe.io/post/cocoapods-private关于版本更新,依赖,子库问题:
https://juejin.im/post/5ac5daf451882555627d8491